TPTP Problem File: DAT163^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT163^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Hamming stream 337
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [Loc10] Lochbihler (2010), Coinductive
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : hamming_stream__337.p [Bla16]

% Status   : Theorem
% Rating   : 1.00 v8.1.0, 0.75 v7.5.0, 1.00 v7.1.0
% Syntax   : Number of formulae    :  344 ( 115 unt;  55 typ;   0 def)
%            Number of atoms       :  848 ( 243 equ;   0 cnn)
%            Maximal formula atoms :   13 (   2 avg)
%            Number of connectives : 3758 (  85   ~;  29   |;  68   &;3132   @)
%                                         (   0 <=>; 444  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   21 (   8 avg)
%            Number of types       :    2 (   1 usr)
%            Number of type conns  :  180 ( 180   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   57 (  54 usr;   3 con; 0-4 aty)
%            Number of variables   :  939 (  47   ^; 811   !;  31   ?; 939   :)
%                                         (  50  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:43:47.824
%------------------------------------------------------------------------------
%----Could-be-implicit typings (4)
thf(ty_t_Coinductive__List_Ollist,type,
    coinductive_llist: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

%----Explicit typings (51)
thf(sy_cl_HOL_Otype,type,
    type: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ozero,type,
    zero: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oord,type,
    ord: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Oorder,type,
    order: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Omult__zero,type,
    mult_zero: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Omonoid__add,type,
    monoid_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Olinorder,type,
    linorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Orderings_Opreorder,type,
    preorder: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Oordered__ring,type,
    ordered_ring: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Ocomm__semiring__1,type,
    comm_semiring_1: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__ring,type,
    linordered_ring: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Oordered__semiring,type,
    ordered_semiring: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Oab__semigroup__mult,type,
    ab_semigroup_mult: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semidom,type,
    linordered_semidom: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Oordered__semiring__0,type,
    ordered_semiring_0: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Oordered__comm__semiring,type,
    ordere1490568538miring: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__ring__strict,type,
    linord581940658strict: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Osemiring__no__zero__divisors,type,
    semiri1193490041visors: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__semiring__strict,type,
    linord20386208strict: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Complete__Lattices_Ocomplete__lattice,type,
    comple187826305attice: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
    canoni770627133id_add: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Olinordered__comm__semiring__strict,type,
    linord893533164strict: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_cl_Rings_Osemiring__no__zero__divisors__cancel,type,
    semiri1923998003cancel: 
      !>[A: $tType] : ( ( itself @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ofinite__lprefix,type,
    coindu328551480prefix: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Oldistinct,type,
    coindu351974385stinct: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Ollast,type,
    coinductive_llast: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).

thf(sy_c_Coinductive__List_Ollist_OLCons,type,
    coinductive_LCons: 
      !>[A: $tType] : ( A > ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Ollist_OLNil,type,
    coinductive_LNil: 
      !>[A: $tType] : ( coinductive_llist @ A ) ).

thf(sy_c_Coinductive__List_Ollist_Olset,type,
    coinductive_lset: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ A ) ) ).

thf(sy_c_Coinductive__List_Olmember,type,
    coinductive_lmember: 
      !>[A: $tType] : ( A > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Olstrict__prefix,type,
    coindu1478340336prefix: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Coinductive__List_Olsublist,type,
    coinductive_lsublist: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > ( set @ nat ) > ( coinductive_llist @ A ) ) ).

thf(sy_c_Coinductive__List_Omonoid__add__class_Ollistsum,type,
    coindu780009021istsum: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > A ) ).

thf(sy_c_Coinductive__List_Oord__class_Olsorted,type,
    coindu63249387sorted: 
      !>[A: $tType] : ( ( coinductive_llist @ A ) > $o ) ).

thf(sy_c_Complete__Partial__Order2_Othe__Sup,type,
    comple474717373he_Sup: 
      !>[A: $tType] : ( ( set @ A ) > A ) ).

thf(sy_c_Groups_Otimes__class_Otimes,type,
    times_times: 
      !>[A: $tType] : ( A > A > A ) ).

thf(sy_c_Groups_Ozero__class_Ozero,type,
    zero_zero: 
      !>[A: $tType] : A ).

thf(sy_c_HOL_OThe,type,
    the: 
      !>[A: $tType] : ( ( A > $o ) > A ) ).

thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Ohamming,type,
    hammin2015774020amming: coinductive_llist @ nat ).

thf(sy_c_Hamming__Stream__Mirabelle__rwekfkwckg_Osmooth,type,
    hammin1195055315smooth: nat > $o ).

thf(sy_c_Hilbert__Choice_OGreatest,type,
    hilbert_Greatest: 
      !>[A: $tType] : ( ( A > $o ) > A ) ).

thf(sy_c_Hilbert__Choice_OGreatestM,type,
    hilbert_GreatestM: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).

thf(sy_c_Hilbert__Choice_OLeastM,type,
    hilbert_LeastM: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Nat_OSuc,type,
    suc: nat > nat ).

thf(sy_c_Orderings_Oord__class_Oless,type,
    ord_less: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Orderings_Oord__class_Oless__eq,type,
    ord_less_eq: 
      !>[A: $tType] : ( A > A > $o ) ).

thf(sy_c_Pure_Otype,type,
    type2: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Relation_OPowp,type,
    powp: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

%----Relevant facts (254)
thf(fact_0_hamming__smooth,axiom,
    ( ( coinductive_lset @ nat @ hammin2015774020amming )
    = ( collect @ nat @ hammin1195055315smooth ) ) ).

% hamming_smooth
thf(fact_1_smooth__hamming,axiom,
    ! [N: nat] :
      ( ( hammin1195055315smooth @ N )
     => ( member @ nat @ N @ ( coinductive_lset @ nat @ hammin2015774020amming ) ) ) ).

% smooth_hamming
thf(fact_2_lsorted__hamming,axiom,
    coindu63249387sorted @ nat @ hammin2015774020amming ).

% lsorted_hamming
thf(fact_3_ldistinct__hamming,axiom,
    coindu351974385stinct @ nat @ hammin2015774020amming ).

% ldistinct_hamming
thf(fact_4_the__equality,axiom,
    ! [A: $tType,P: A > $o,A2: A] :
      ( ( P @ A2 )
     => ( ! [X: A] :
            ( ( P @ X )
           => ( X = A2 ) )
       => ( ( the @ A @ P )
          = A2 ) ) ) ).

% the_equality
thf(fact_5_the__eq__trivial,axiom,
    ! [A: $tType,A2: A] :
      ( ( the @ A
        @ ^ [X2: A] : X2 = A2 )
      = A2 ) ).

% the_eq_trivial
thf(fact_6_the__sym__eq__trivial,axiom,
    ! [A: $tType,X3: A] :
      ( ( the @ A
        @ ( ^ [Y: A,Z: A] : Y = Z
          @ X3 ) )
      = X3 ) ).

% the_sym_eq_trivial
thf(fact_7_lsorted__ldistinct__lset__unique,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [Xs: coinductive_llist @ A,Ys: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ Xs )
         => ( ( coindu351974385stinct @ A @ Xs )
           => ( ( coindu63249387sorted @ A @ Ys )
             => ( ( coindu351974385stinct @ A @ Ys )
               => ( ( ( coinductive_lset @ A @ Xs )
                    = ( coinductive_lset @ A @ Ys ) )
                 => ( Xs = Ys ) ) ) ) ) ) ) ).

% lsorted_ldistinct_lset_unique
thf(fact_8_theI,axiom,
    ! [A: $tType,P: A > $o,A2: A] :
      ( ( P @ A2 )
     => ( ! [X: A] :
            ( ( P @ X )
           => ( X = A2 ) )
       => ( P @ ( the @ A @ P ) ) ) ) ).

% theI
thf(fact_9_theI_H,axiom,
    ! [A: $tType,P: A > $o] :
      ( ? [X4: A] :
          ( ( P @ X4 )
          & ! [Y2: A] :
              ( ( P @ Y2 )
             => ( Y2 = X4 ) ) )
     => ( P @ ( the @ A @ P ) ) ) ).

% theI'
thf(fact_10_theI2,axiom,
    ! [A: $tType,P: A > $o,A2: A,Q: A > $o] :
      ( ( P @ A2 )
     => ( ! [X: A] :
            ( ( P @ X )
           => ( X = A2 ) )
       => ( ! [X: A] :
              ( ( P @ X )
             => ( Q @ X ) )
         => ( Q @ ( the @ A @ P ) ) ) ) ) ).

% theI2
thf(fact_11_If__def,axiom,
    ! [A: $tType] :
      ( ( if @ A )
      = ( ^ [P2: $o,X2: A,Y3: A] :
            ( the @ A
            @ ^ [Z2: A] :
                ( ( P2
                 => ( Z2 = X2 ) )
                & ( ~ P2
                 => ( Z2 = Y3 ) ) ) ) ) ) ).

% If_def
thf(fact_12_the1I2,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ? [X4: A] :
          ( ( P @ X4 )
          & ! [Y2: A] :
              ( ( P @ Y2 )
             => ( Y2 = X4 ) ) )
     => ( ! [X: A] :
            ( ( P @ X )
           => ( Q @ X ) )
       => ( Q @ ( the @ A @ P ) ) ) ) ).

% the1I2
thf(fact_13_the1__equality,axiom,
    ! [A: $tType,P: A > $o,A2: A] :
      ( ? [X4: A] :
          ( ( P @ X4 )
          & ! [Y2: A] :
              ( ( P @ Y2 )
             => ( Y2 = X4 ) ) )
     => ( ( P @ A2 )
       => ( ( the @ A @ P )
          = A2 ) ) ) ).

% the1_equality
thf(fact_14_hamming__in__smooth,axiom,
    ord_less_eq @ ( set @ nat ) @ ( coinductive_lset @ nat @ hammin2015774020amming ) @ ( collect @ nat @ hammin1195055315smooth ) ).

% hamming_in_smooth
thf(fact_15_Nitpick_OThe__psimp,axiom,
    ! [A: $tType,P: A > $o,X3: A] :
      ( ( P
        = ( ^ [Y: A,Z: A] : Y = Z
          @ X3 ) )
     => ( ( the @ A @ P )
        = X3 ) ) ).

% Nitpick.The_psimp
thf(fact_16_wlog__linorder__le,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,B2: A,A2: A] :
          ( ! [A3: A,B3: A] :
              ( ( ord_less_eq @ A @ A3 @ B3 )
             => ( P @ A3 @ B3 ) )
         => ( ( ( P @ B2 @ A2 )
             => ( P @ A2 @ B2 ) )
           => ( P @ A2 @ B2 ) ) ) ) ).

% wlog_linorder_le
thf(fact_17_subsetI,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ! [X: A] :
          ( ( member @ A @ X @ A4 )
         => ( member @ A @ X @ B4 ) )
     => ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).

% subsetI
thf(fact_18_subset__antisym,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
       => ( A4 = B4 ) ) ) ).

% subset_antisym
thf(fact_19_order__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X3: A] : ( ord_less_eq @ A @ X3 @ X3 ) ) ).

% order_refl
thf(fact_20_conj__subset__def,axiom,
    ! [A: $tType,A4: set @ A,P: A > $o,Q: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ A4
        @ ( collect @ A
          @ ^ [X2: A] :
              ( ( P @ X2 )
              & ( Q @ X2 ) ) ) )
      = ( ( ord_less_eq @ ( set @ A ) @ A4 @ ( collect @ A @ P ) )
        & ( ord_less_eq @ ( set @ A ) @ A4 @ ( collect @ A @ Q ) ) ) ) ).

% conj_subset_def
thf(fact_21_prop__restrict,axiom,
    ! [A: $tType,X3: A,Z3: set @ A,X5: set @ A,P: A > $o] :
      ( ( member @ A @ X3 @ Z3 )
     => ( ( ord_less_eq @ ( set @ A ) @ Z3
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ X5 )
                & ( P @ X2 ) ) ) )
       => ( P @ X3 ) ) ) ).

% prop_restrict
thf(fact_22_Collect__restrict,axiom,
    ! [A: $tType,X5: set @ A,P: A > $o] :
      ( ord_less_eq @ ( set @ A )
      @ ( collect @ A
        @ ^ [X2: A] :
            ( ( member @ A @ X2 @ X5 )
            & ( P @ X2 ) ) )
      @ X5 ) ).

% Collect_restrict
thf(fact_23_subset__CollectI,axiom,
    ! [A: $tType,B4: set @ A,A4: set @ A,Q: A > $o,P: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
     => ( ! [X: A] :
            ( ( member @ A @ X @ B4 )
           => ( ( Q @ X )
             => ( P @ X ) ) )
       => ( ord_less_eq @ ( set @ A )
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ B4 )
                & ( Q @ X2 ) ) )
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ A4 )
                & ( P @ X2 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_24_subset__Collect__iff,axiom,
    ! [A: $tType,B4: set @ A,A4: set @ A,P: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
     => ( ( ord_less_eq @ ( set @ A ) @ B4
          @ ( collect @ A
            @ ^ [X2: A] :
                ( ( member @ A @ X2 @ A4 )
                & ( P @ X2 ) ) ) )
        = ( ! [X2: A] :
              ( ( member @ A @ X2 @ B4 )
             => ( P @ X2 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_25_theI__unique,axiom,
    ! [A: $tType,P: A > $o,X3: A] :
      ( ? [X4: A] :
          ( ( P @ X4 )
          & ! [Y2: A] :
              ( ( P @ Y2 )
             => ( Y2 = X4 ) ) )
     => ( ( P @ X3 )
        = ( X3
          = ( the @ A @ P ) ) ) ) ).

% theI_unique
thf(fact_26_lset__lmember,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
      = ( coinductive_lmember @ A @ X3 @ Xs ) ) ).

% lset_lmember
thf(fact_27_less__eq__set__def,axiom,
    ! [A: $tType] :
      ( ( ord_less_eq @ ( set @ A ) )
      = ( ^ [A5: set @ A,B5: set @ A] :
            ( ord_less_eq @ ( A > $o )
            @ ^ [X2: A] : ( member @ A @ X2 @ A5 )
            @ ^ [X2: A] : ( member @ A @ X2 @ B5 ) ) ) ) ).

% less_eq_set_def
thf(fact_28_dual__order_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ A2 @ B2 )
           => ( A2 = B2 ) ) ) ) ).

% dual_order.antisym
thf(fact_29_dual__order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C @ B2 )
           => ( ord_less_eq @ A @ C @ A2 ) ) ) ) ).

% dual_order.trans
thf(fact_30_linorder__wlog,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [P: A > A > $o,A2: A,B2: A] :
          ( ! [A3: A,B3: A] :
              ( ( ord_less_eq @ A @ A3 @ B3 )
             => ( P @ A3 @ B3 ) )
         => ( ! [A3: A,B3: A] :
                ( ( P @ B3 @ A3 )
               => ( P @ A3 @ B3 ) )
           => ( P @ A2 @ B2 ) ) ) ) ).

% linorder_wlog
thf(fact_31_dual__order_Orefl,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( ord_less_eq @ A @ A2 @ A2 ) ) ).

% dual_order.refl
thf(fact_32_order__trans,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A,Z4: A] :
          ( ( ord_less_eq @ A @ X3 @ Y4 )
         => ( ( ord_less_eq @ A @ Y4 @ Z4 )
           => ( ord_less_eq @ A @ X3 @ Z4 ) ) ) ) ).

% order_trans
thf(fact_33_order__class_Oorder_Oantisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ A2 )
           => ( A2 = B2 ) ) ) ) ).

% order_class.order.antisym
thf(fact_34_ord__le__eq__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( B2 = C )
           => ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% ord_le_eq_trans
thf(fact_35_ord__eq__le__trans,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( A2 = B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% ord_eq_le_trans
thf(fact_36_antisym__conv,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [Y4: A,X3: A] :
          ( ( ord_less_eq @ A @ Y4 @ X3 )
         => ( ( ord_less_eq @ A @ X3 @ Y4 )
            = ( X3 = Y4 ) ) ) ) ).

% antisym_conv
thf(fact_37_le__cases3,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A,Z4: A] :
          ( ( ( ord_less_eq @ A @ X3 @ Y4 )
           => ~ ( ord_less_eq @ A @ Y4 @ Z4 ) )
         => ( ( ( ord_less_eq @ A @ Y4 @ X3 )
             => ~ ( ord_less_eq @ A @ X3 @ Z4 ) )
           => ( ( ( ord_less_eq @ A @ X3 @ Z4 )
               => ~ ( ord_less_eq @ A @ Z4 @ Y4 ) )
             => ( ( ( ord_less_eq @ A @ Z4 @ Y4 )
                 => ~ ( ord_less_eq @ A @ Y4 @ X3 ) )
               => ( ( ( ord_less_eq @ A @ Y4 @ Z4 )
                   => ~ ( ord_less_eq @ A @ Z4 @ X3 ) )
                 => ~ ( ( ord_less_eq @ A @ Z4 @ X3 )
                     => ~ ( ord_less_eq @ A @ X3 @ Y4 ) ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_38_order_Otrans,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ B2 @ C )
           => ( ord_less_eq @ A @ A2 @ C ) ) ) ) ).

% order.trans
thf(fact_39_le__cases,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A] :
          ( ~ ( ord_less_eq @ A @ X3 @ Y4 )
         => ( ord_less_eq @ A @ Y4 @ X3 ) ) ) ).

% le_cases
thf(fact_40_eq__refl,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A] :
          ( ( X3 = Y4 )
         => ( ord_less_eq @ A @ X3 @ Y4 ) ) ) ).

% eq_refl
thf(fact_41_linear,axiom,
    ! [A: $tType] :
      ( ( linorder @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A] :
          ( ( ord_less_eq @ A @ X3 @ Y4 )
          | ( ord_less_eq @ A @ Y4 @ X3 ) ) ) ).

% linear
thf(fact_42_antisym,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A] :
          ( ( ord_less_eq @ A @ X3 @ Y4 )
         => ( ( ord_less_eq @ A @ Y4 @ X3 )
           => ( X3 = Y4 ) ) ) ) ).

% antisym
thf(fact_43_eq__iff,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ( ( ^ [Y: A,Z: A] : Y = Z )
        = ( ^ [X2: A,Y3: A] :
              ( ( ord_less_eq @ A @ X2 @ Y3 )
              & ( ord_less_eq @ A @ Y3 @ X2 ) ) ) ) ) ).

% eq_iff
thf(fact_44_ord__le__eq__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > B,C: B] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ( F @ B2 )
              = C )
           => ( ! [X: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X @ Y2 )
                 => ( ord_less_eq @ B @ ( F @ X ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ B @ ( F @ A2 ) @ C ) ) ) ) ) ).

% ord_le_eq_subst
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A2: A,P: A > $o] :
      ( ( member @ A @ A2 @ ( collect @ A @ P ) )
      = ( P @ A2 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A4: set @ A] :
      ( ( collect @ A
        @ ^ [X2: A] : ( member @ A @ X2 @ A4 ) )
      = A4 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X: A] :
          ( ( P @ X )
          = ( Q @ X ) )
     => ( ( collect @ A @ P )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F: A > B,G: A > B] :
      ( ! [X: A] :
          ( ( F @ X )
          = ( G @ X ) )
     => ( F = G ) ) ).

% ext
thf(fact_49_ord__eq__le__subst,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( ord @ B @ ( type2 @ B ) )
        & ( ord @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C: B] :
          ( ( A2
            = ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X @ Y2 )
                 => ( ord_less_eq @ A @ ( F @ X ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_50_order__subst2,axiom,
    ! [A: $tType,C2: $tType] :
      ( ( ( order @ C2 @ ( type2 @ C2 ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,B2: A,F: A > C2,C: C2] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ C2 @ ( F @ B2 ) @ C )
           => ( ! [X: A,Y2: A] :
                  ( ( ord_less_eq @ A @ X @ Y2 )
                 => ( ord_less_eq @ C2 @ ( F @ X ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ C2 @ ( F @ A2 ) @ C ) ) ) ) ) ).

% order_subst2
thf(fact_51_order__subst1,axiom,
    ! [A: $tType,B: $tType] :
      ( ( ( order @ B @ ( type2 @ B ) )
        & ( order @ A @ ( type2 @ A ) ) )
     => ! [A2: A,F: B > A,B2: B,C: B] :
          ( ( ord_less_eq @ A @ A2 @ ( F @ B2 ) )
         => ( ( ord_less_eq @ B @ B2 @ C )
           => ( ! [X: B,Y2: B] :
                  ( ( ord_less_eq @ B @ X @ Y2 )
                 => ( ord_less_eq @ A @ ( F @ X ) @ ( F @ Y2 ) ) )
             => ( ord_less_eq @ A @ A2 @ ( F @ C ) ) ) ) ) ) ).

% order_subst1
thf(fact_52_le__fun__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ( ( ord_less_eq @ ( A > B ) )
        = ( ^ [F2: A > B,G2: A > B] :
            ! [X2: A] : ( ord_less_eq @ B @ ( F2 @ X2 ) @ ( G2 @ X2 ) ) ) ) ) ).

% le_fun_def
thf(fact_53_le__funI,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B] :
          ( ! [X: A] : ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) )
         => ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).

% le_funI
thf(fact_54_le__funE,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X3: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) ) ) ) ).

% le_funE
thf(fact_55_le__funD,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [F: A > B,G: A > B,X3: A] :
          ( ( ord_less_eq @ ( A > B ) @ F @ G )
         => ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) ) ) ) ).

% le_funD
thf(fact_56_Collect__mono__iff,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) )
      = ( ! [X2: A] :
            ( ( P @ X2 )
           => ( Q @ X2 ) ) ) ) ).

% Collect_mono_iff
thf(fact_57_contra__subsetD,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ~ ( member @ A @ C @ B4 )
       => ~ ( member @ A @ C @ A4 ) ) ) ).

% contra_subsetD
thf(fact_58_set__eq__subset,axiom,
    ! [A: $tType] :
      ( ( ^ [Y: set @ A,Z: set @ A] : Y = Z )
      = ( ^ [A5: set @ A,B5: set @ A] :
            ( ( ord_less_eq @ ( set @ A ) @ A5 @ B5 )
            & ( ord_less_eq @ ( set @ A ) @ B5 @ A5 ) ) ) ) ).

% set_eq_subset
thf(fact_59_subset__trans,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C3: set @ A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( ord_less_eq @ ( set @ A ) @ B4 @ C3 )
       => ( ord_less_eq @ ( set @ A ) @ A4 @ C3 ) ) ) ).

% subset_trans
thf(fact_60_Collect__mono,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X: A] :
          ( ( P @ X )
         => ( Q @ X ) )
     => ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) ) ) ).

% Collect_mono
thf(fact_61_subset__refl,axiom,
    ! [A: $tType,A4: set @ A] : ( ord_less_eq @ ( set @ A ) @ A4 @ A4 ) ).

% subset_refl
thf(fact_62_rev__subsetD,axiom,
    ! [A: $tType,C: A,A4: set @ A,B4: set @ A] :
      ( ( member @ A @ C @ A4 )
     => ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
       => ( member @ A @ C @ B4 ) ) ) ).

% rev_subsetD
thf(fact_63_subset__iff,axiom,
    ! [A: $tType] :
      ( ( ord_less_eq @ ( set @ A ) )
      = ( ^ [A5: set @ A,B5: set @ A] :
          ! [T: A] :
            ( ( member @ A @ T @ A5 )
           => ( member @ A @ T @ B5 ) ) ) ) ).

% subset_iff
thf(fact_64_set__rev__mp,axiom,
    ! [A: $tType,X3: A,A4: set @ A,B4: set @ A] :
      ( ( member @ A @ X3 @ A4 )
     => ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
       => ( member @ A @ X3 @ B4 ) ) ) ).

% set_rev_mp
thf(fact_65_equalityD2,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( A4 = B4 )
     => ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ).

% equalityD2
thf(fact_66_equalityD1,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( A4 = B4 )
     => ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).

% equalityD1
thf(fact_67_subset__eq,axiom,
    ! [A: $tType] :
      ( ( ord_less_eq @ ( set @ A ) )
      = ( ^ [A5: set @ A,B5: set @ A] :
          ! [X2: A] :
            ( ( member @ A @ X2 @ A5 )
           => ( member @ A @ X2 @ B5 ) ) ) ) ).

% subset_eq
thf(fact_68_equalityE,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A] :
      ( ( A4 = B4 )
     => ~ ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
         => ~ ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ) ).

% equalityE
thf(fact_69_subsetCE,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ C @ A4 )
       => ( member @ A @ C @ B4 ) ) ) ).

% subsetCE
thf(fact_70_subsetD,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,C: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ C @ A4 )
       => ( member @ A @ C @ B4 ) ) ) ).

% subsetD
thf(fact_71_in__mono,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,X3: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ X3 @ A4 )
       => ( member @ A @ X3 @ B4 ) ) ) ).

% in_mono
thf(fact_72_set__mp,axiom,
    ! [A: $tType,A4: set @ A,B4: set @ A,X3: A] :
      ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
     => ( ( member @ A @ X3 @ A4 )
       => ( member @ A @ X3 @ B4 ) ) ) ).

% set_mp
thf(fact_73_pred__subset__eq,axiom,
    ! [A: $tType,R: set @ A,S: set @ A] :
      ( ( ord_less_eq @ ( A > $o )
        @ ^ [X2: A] : ( member @ A @ X2 @ R )
        @ ^ [X2: A] : ( member @ A @ X2 @ S ) )
      = ( ord_less_eq @ ( set @ A ) @ R @ S ) ) ).

% pred_subset_eq
thf(fact_74_lfp_Oleq__antisym,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A] :
          ( ( ord_less_eq @ A @ X3 @ Y4 )
         => ( ( ord_less_eq @ A @ Y4 @ X3 )
           => ( X3 = Y4 ) ) ) ) ).

% lfp.leq_antisym
thf(fact_75_gfp_Oleq__antisym,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Y4: A,X3: A] :
          ( ( ord_less_eq @ A @ Y4 @ X3 )
         => ( ( ord_less_eq @ A @ X3 @ Y4 )
           => ( X3 = Y4 ) ) ) ) ).

% gfp.leq_antisym
thf(fact_76_lfp_Oleq__trans,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A,Z4: A] :
          ( ( ord_less_eq @ A @ X3 @ Y4 )
         => ( ( ord_less_eq @ A @ Y4 @ Z4 )
           => ( ord_less_eq @ A @ X3 @ Z4 ) ) ) ) ).

% lfp.leq_trans
thf(fact_77_gfp_Oleq__trans,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [Y4: A,X3: A,Z4: A] :
          ( ( ord_less_eq @ A @ Y4 @ X3 )
         => ( ( ord_less_eq @ A @ Z4 @ Y4 )
           => ( ord_less_eq @ A @ Z4 @ X3 ) ) ) ) ).

% gfp.leq_trans
thf(fact_78_lfp_Oleq__refl,axiom,
    ! [A: $tType] :
      ( ( comple187826305attice @ A @ ( type2 @ A ) )
     => ! [X3: A] : ( ord_less_eq @ A @ X3 @ X3 ) ) ).

% lfp.leq_refl
thf(fact_79_lsorted__LCons,axiom,
    ! [A: $tType] :
      ( ( preorder @ A @ ( type2 @ A ) )
     => ! [X3: A,Xs: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) )
          = ( ( coindu63249387sorted @ A @ Xs )
            & ! [X2: A] :
                ( ( member @ A @ X2 @ ( coinductive_lset @ A @ Xs ) )
               => ( ord_less_eq @ A @ X3 @ X2 ) ) ) ) ) ).

% lsorted_LCons
thf(fact_80_lset__lsublist__subset,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,I: set @ nat] : ( ord_less_eq @ ( set @ A ) @ ( coinductive_lset @ A @ ( coinductive_lsublist @ A @ Xs @ I ) ) @ ( coinductive_lset @ A @ Xs ) ) ).

% lset_lsublist_subset
thf(fact_81_ldistinct__LCons,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
      ( ( coindu351974385stinct @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) )
      = ( ~ ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
        & ( coindu351974385stinct @ A @ Xs ) ) ) ).

% ldistinct_LCons
thf(fact_82_llist_Oinject,axiom,
    ! [A: $tType,X21: A,X22: coinductive_llist @ A,Y21: A,Y22: coinductive_llist @ A] :
      ( ( ( coinductive_LCons @ A @ X21 @ X22 )
        = ( coinductive_LCons @ A @ Y21 @ Y22 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 ) ) ) ).

% llist.inject
thf(fact_83_predicate1I,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o] :
      ( ! [X: A] :
          ( ( P @ X )
         => ( Q @ X ) )
     => ( ord_less_eq @ ( A > $o ) @ P @ Q ) ) ).

% predicate1I
thf(fact_84_lsorted__LCons__LCons,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A,Xs: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) )
          = ( ( ord_less_eq @ A @ X3 @ Y4 )
            & ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ) ) ).

% lsorted_LCons_LCons
thf(fact_85_predicate1D,axiom,
    ! [A: $tType,P: A > $o,Q: A > $o,X3: A] :
      ( ( ord_less_eq @ ( A > $o ) @ P @ Q )
     => ( ( P @ X3 )
       => ( Q @ X3 ) ) ) ).

% predicate1D
thf(fact_86_rev__predicate1D,axiom,
    ! [A: $tType,P: A > $o,X3: A,Q: A > $o] :
      ( ( P @ X3 )
     => ( ( ord_less_eq @ ( A > $o ) @ P @ Q )
       => ( Q @ X3 ) ) ) ).

% rev_predicate1D
thf(fact_87_llist_Oset__induct,axiom,
    ! [A: $tType,X3: A,A2: coinductive_llist @ A,P: A > ( coinductive_llist @ A ) > $o] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ A2 ) )
     => ( ! [Z1: A,Z22: coinductive_llist @ A] : ( P @ Z1 @ ( coinductive_LCons @ A @ Z1 @ Z22 ) )
       => ( ! [Z1: A,Z22: coinductive_llist @ A,Xa: A] :
              ( ( member @ A @ Xa @ ( coinductive_lset @ A @ Z22 ) )
             => ( ( P @ Xa @ Z22 )
               => ( P @ Xa @ ( coinductive_LCons @ A @ Z1 @ Z22 ) ) ) )
         => ( P @ X3 @ A2 ) ) ) ) ).

% llist.set_induct
thf(fact_88_llist_Oset__cases,axiom,
    ! [A: $tType,E: A,A2: coinductive_llist @ A] :
      ( ( member @ A @ E @ ( coinductive_lset @ A @ A2 ) )
     => ( ! [Z22: coinductive_llist @ A] :
            ( A2
           != ( coinductive_LCons @ A @ E @ Z22 ) )
       => ~ ! [Z1: A,Z22: coinductive_llist @ A] :
              ( ( A2
                = ( coinductive_LCons @ A @ Z1 @ Z22 ) )
             => ~ ( member @ A @ E @ ( coinductive_lset @ A @ Z22 ) ) ) ) ) ).

% llist.set_cases
thf(fact_89_lset__induct_H,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
     => ( ! [Xs2: coinductive_llist @ A] : ( P @ ( coinductive_LCons @ A @ X3 @ Xs2 ) )
       => ( ! [X6: A,Xs2: coinductive_llist @ A] :
              ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs2 ) )
             => ( ( P @ Xs2 )
               => ( P @ ( coinductive_LCons @ A @ X6 @ Xs2 ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% lset_induct'
thf(fact_90_lset__induct,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A,P: ( coinductive_llist @ A ) > $o] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
     => ( ! [Xs2: coinductive_llist @ A] : ( P @ ( coinductive_LCons @ A @ X3 @ Xs2 ) )
       => ( ! [X6: A,Xs2: coinductive_llist @ A] :
              ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs2 ) )
             => ( ( X3 != X6 )
               => ( ( P @ Xs2 )
                 => ( P @ ( coinductive_LCons @ A @ X6 @ Xs2 ) ) ) ) )
         => ( P @ Xs ) ) ) ) ).

% lset_induct
thf(fact_91_lset__cases,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
     => ( ! [Xs3: coinductive_llist @ A] :
            ( Xs
           != ( coinductive_LCons @ A @ X3 @ Xs3 ) )
       => ~ ! [X6: A,Xs3: coinductive_llist @ A] :
              ( ( Xs
                = ( coinductive_LCons @ A @ X6 @ Xs3 ) )
             => ~ ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs3 ) ) ) ) ) ).

% lset_cases
thf(fact_92_llist_Oset__intros_I1_J,axiom,
    ! [A: $tType,A1: A,A22: coinductive_llist @ A] : ( member @ A @ A1 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ A1 @ A22 ) ) ) ).

% llist.set_intros(1)
thf(fact_93_llist_Oset__intros_I2_J,axiom,
    ! [A: $tType,X3: A,A22: coinductive_llist @ A,A1: A] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ A22 ) )
     => ( member @ A @ X3 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ A1 @ A22 ) ) ) ) ).

% llist.set_intros(2)
thf(fact_94_lset__intros_I1_J,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A] : ( member @ A @ X3 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) ) ) ).

% lset_intros(1)
thf(fact_95_lset__intros_I2_J,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A,X7: A] :
      ( ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
     => ( member @ A @ X3 @ ( coinductive_lset @ A @ ( coinductive_LCons @ A @ X7 @ Xs ) ) ) ) ).

% lset_intros(2)
thf(fact_96_lmember__code_I2_J,axiom,
    ! [A: $tType,X3: A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coinductive_lmember @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
      = ( ( X3 = Y4 )
        | ( coinductive_lmember @ A @ X3 @ Ys ) ) ) ).

% lmember_code(2)
thf(fact_97_LCons__LCons,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X3: A,Y4: A,Xs: coinductive_llist @ A] :
          ( ( ord_less_eq @ A @ X3 @ Y4 )
         => ( ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) )
           => ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ) ) ) ).

% LCons_LCons
thf(fact_98_ldistinct_OLCons,axiom,
    ! [A: $tType,X3: A,Xs: coinductive_llist @ A] :
      ( ~ ( member @ A @ X3 @ ( coinductive_lset @ A @ Xs ) )
     => ( ( coindu351974385stinct @ A @ Xs )
       => ( coindu351974385stinct @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) ) ) ) ).

% ldistinct.LCons
thf(fact_99_the__Sup__def,axiom,
    ! [A: $tType] :
      ( ( comple474717373he_Sup @ A )
      = ( ^ [A5: set @ A] :
            ( the @ A
            @ ^ [A6: A] : ( member @ A @ A6 @ A5 ) ) ) ) ).

% the_Sup_def
thf(fact_100_Powp__mono,axiom,
    ! [A: $tType,A4: A > $o,B4: A > $o] :
      ( ( ord_less_eq @ ( A > $o ) @ A4 @ B4 )
     => ( ord_less_eq @ ( ( set @ A ) > $o ) @ ( powp @ A @ A4 ) @ ( powp @ A @ B4 ) ) ) ).

% Powp_mono
thf(fact_101_ldistinct_Ocoinduct,axiom,
    ! [A: $tType,X5: ( coinductive_llist @ A ) > $o,X3: coinductive_llist @ A] :
      ( ( X5 @ X3 )
     => ( ! [X: coinductive_llist @ A] :
            ( ( X5 @ X )
           => ( ( X
                = ( coinductive_LNil @ A ) )
              | ? [Xa2: A,Xs4: coinductive_llist @ A] :
                  ( ( X
                    = ( coinductive_LCons @ A @ Xa2 @ Xs4 ) )
                  & ~ ( member @ A @ Xa2 @ ( coinductive_lset @ A @ Xs4 ) )
                  & ( ( X5 @ Xs4 )
                    | ( coindu351974385stinct @ A @ Xs4 ) ) ) ) )
       => ( coindu351974385stinct @ A @ X3 ) ) ) ).

% ldistinct.coinduct
thf(fact_102_ldistinct_Osimps,axiom,
    ! [A: $tType] :
      ( ( coindu351974385stinct @ A )
      = ( ^ [A6: coinductive_llist @ A] :
            ( ( A6
              = ( coinductive_LNil @ A ) )
            | ? [X2: A,Xs5: coinductive_llist @ A] :
                ( ( A6
                  = ( coinductive_LCons @ A @ X2 @ Xs5 ) )
                & ~ ( member @ A @ X2 @ ( coinductive_lset @ A @ Xs5 ) )
                & ( coindu351974385stinct @ A @ Xs5 ) ) ) ) ) ).

% ldistinct.simps
thf(fact_103_ldistinct_Ocases,axiom,
    ! [A: $tType,A2: coinductive_llist @ A] :
      ( ( coindu351974385stinct @ A @ A2 )
     => ( ( A2
         != ( coinductive_LNil @ A ) )
       => ~ ! [X: A,Xs2: coinductive_llist @ A] :
              ( ( A2
                = ( coinductive_LCons @ A @ X @ Xs2 ) )
             => ( ~ ( member @ A @ X @ ( coinductive_lset @ A @ Xs2 ) )
               => ~ ( coindu351974385stinct @ A @ Xs2 ) ) ) ) ) ).

% ldistinct.cases
thf(fact_104_lsorted_Ocases,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [A2: coinductive_llist @ A] :
          ( ( coindu63249387sorted @ A @ A2 )
         => ( ( A2
             != ( coinductive_LNil @ A ) )
           => ( ! [X: A] :
                  ( A2
                 != ( coinductive_LCons @ A @ X @ ( coinductive_LNil @ A ) ) )
             => ~ ! [X: A,Y2: A,Xs2: coinductive_llist @ A] :
                    ( ( A2
                      = ( coinductive_LCons @ A @ X @ ( coinductive_LCons @ A @ Y2 @ Xs2 ) ) )
                   => ( ( ord_less_eq @ A @ X @ Y2 )
                     => ~ ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y2 @ Xs2 ) ) ) ) ) ) ) ) ).

% lsorted.cases
thf(fact_105_hamming__eq__LNil__iff,axiom,
    ( hammin2015774020amming
   != ( coinductive_LNil @ nat ) ) ).

% hamming_eq_LNil_iff
thf(fact_106_lsorted__code_I1_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).

% lsorted_code(1)
thf(fact_107_ldistinct__LNil__code,axiom,
    ! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).

% ldistinct_LNil_code
thf(fact_108_lsublist__LNil,axiom,
    ! [A: $tType,A4: set @ nat] :
      ( ( coinductive_lsublist @ A @ ( coinductive_LNil @ A ) @ A4 )
      = ( coinductive_LNil @ A ) ) ).

% lsublist_LNil
thf(fact_109_lsorted__code_I2_J,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X3: A] : ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) ) ) ).

% lsorted_code(2)
thf(fact_110_llist_Odistinct_I1_J,axiom,
    ! [A: $tType,X21: A,X22: coinductive_llist @ A] :
      ( ( coinductive_LNil @ A )
     != ( coinductive_LCons @ A @ X21 @ X22 ) ) ).

% llist.distinct(1)
thf(fact_111_llist_Oexhaust,axiom,
    ! [A: $tType,Y4: coinductive_llist @ A] :
      ( ( Y4
       != ( coinductive_LNil @ A ) )
     => ~ ! [X212: A,X222: coinductive_llist @ A] :
            ( Y4
           != ( coinductive_LCons @ A @ X212 @ X222 ) ) ) ).

% llist.exhaust
thf(fact_112_neq__LNil__conv,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( Xs
       != ( coinductive_LNil @ A ) )
      = ( ? [X2: A,Xs6: coinductive_llist @ A] :
            ( Xs
            = ( coinductive_LCons @ A @ X2 @ Xs6 ) ) ) ) ).

% neq_LNil_conv
thf(fact_113_LNil,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ( coindu63249387sorted @ A @ ( coinductive_LNil @ A ) ) ) ).

% LNil
thf(fact_114_ldistinct_OLNil,axiom,
    ! [A: $tType] : ( coindu351974385stinct @ A @ ( coinductive_LNil @ A ) ) ).

% ldistinct.LNil
thf(fact_115_lmember__code_I1_J,axiom,
    ! [A: $tType,X3: A] :
      ~ ( coinductive_lmember @ A @ X3 @ ( coinductive_LNil @ A ) ) ).

% lmember_code(1)
thf(fact_116_Singleton,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X3: A] : ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) ) ) ).

% Singleton
thf(fact_117_lsorted_Ocoinduct,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ! [X5: ( coinductive_llist @ A ) > $o,X3: coinductive_llist @ A] :
          ( ( X5 @ X3 )
         => ( ! [X: coinductive_llist @ A] :
                ( ( X5 @ X )
               => ( ( X
                    = ( coinductive_LNil @ A ) )
                  | ? [Xa2: A] :
                      ( X
                      = ( coinductive_LCons @ A @ Xa2 @ ( coinductive_LNil @ A ) ) )
                  | ? [Xa2: A,Y5: A,Xs4: coinductive_llist @ A] :
                      ( ( X
                        = ( coinductive_LCons @ A @ Xa2 @ ( coinductive_LCons @ A @ Y5 @ Xs4 ) ) )
                      & ( ord_less_eq @ A @ Xa2 @ Y5 )
                      & ( ( X5 @ ( coinductive_LCons @ A @ Y5 @ Xs4 ) )
                        | ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y5 @ Xs4 ) ) ) ) ) )
           => ( coindu63249387sorted @ A @ X3 ) ) ) ) ).

% lsorted.coinduct
thf(fact_118_lsorted_Osimps,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ( ( coindu63249387sorted @ A )
        = ( ^ [A6: coinductive_llist @ A] :
              ( ( A6
                = ( coinductive_LNil @ A ) )
              | ? [X2: A] :
                  ( A6
                  = ( coinductive_LCons @ A @ X2 @ ( coinductive_LNil @ A ) ) )
              | ? [X2: A,Y3: A,Xs5: coinductive_llist @ A] :
                  ( ( A6
                    = ( coinductive_LCons @ A @ X2 @ ( coinductive_LCons @ A @ Y3 @ Xs5 ) ) )
                  & ( ord_less_eq @ A @ X2 @ Y3 )
                  & ( coindu63249387sorted @ A @ ( coinductive_LCons @ A @ Y3 @ Xs5 ) ) ) ) ) ) ) ).

% lsorted.simps
thf(fact_119_Coinductive__List_Ofinite__lprefix__nitpick__simps_I3_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A,Y4: A,Ys: coinductive_llist @ A] :
      ( ( coindu328551480prefix @ A @ Xs @ ( coinductive_LCons @ A @ Y4 @ Ys ) )
      = ( ( Xs
          = ( coinductive_LNil @ A ) )
        | ? [Xs6: coinductive_llist @ A] :
            ( ( Xs
              = ( coinductive_LCons @ A @ Y4 @ Xs6 ) )
            & ( coindu328551480prefix @ A @ Xs6 @ Ys ) ) ) ) ).

% Coinductive_List.finite_lprefix_nitpick_simps(3)
thf(fact_120_lstrict__prefix__code_I2_J,axiom,
    ! [B: $tType,Y4: B,Ys: coinductive_llist @ B] : ( coindu1478340336prefix @ B @ ( coinductive_LNil @ B ) @ ( coinductive_LCons @ B @ Y4 @ Ys ) ) ).

% lstrict_prefix_code(2)
thf(fact_121_lstrict__prefix__code_I3_J,axiom,
    ! [B: $tType,X3: B,Xs: coinductive_llist @ B] :
      ~ ( coindu1478340336prefix @ B @ ( coinductive_LCons @ B @ X3 @ Xs ) @ ( coinductive_LNil @ B ) ) ).

% lstrict_prefix_code(3)
thf(fact_122_lsublist__singleton,axiom,
    ! [A: $tType,A4: set @ nat,X3: A] :
      ( ( ( member @ nat @ ( zero_zero @ nat ) @ A4 )
       => ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) @ A4 )
          = ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) ) )
      & ( ~ ( member @ nat @ ( zero_zero @ nat ) @ A4 )
       => ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) @ A4 )
          = ( coinductive_LNil @ A ) ) ) ) ).

% lsublist_singleton
thf(fact_123_llast__singleton,axiom,
    ! [A: $tType,X3: A] :
      ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LNil @ A ) ) )
      = X3 ) ).

% llast_singleton
thf(fact_124_llast__LCons2,axiom,
    ! [A: $tType,X3: A,Y4: A,Xs: coinductive_llist @ A] :
      ( ( coinductive_llast @ A @ ( coinductive_LCons @ A @ X3 @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) )
      = ( coinductive_llast @ A @ ( coinductive_LCons @ A @ Y4 @ Xs ) ) ) ).

% llast_LCons2
thf(fact_125_lstrict__prefix__code_I4_J,axiom,
    ! [B: $tType,X3: B,Xs: coinductive_llist @ B,Y4: B,Ys: coinductive_llist @ B] :
      ( ( coindu1478340336prefix @ B @ ( coinductive_LCons @ B @ X3 @ Xs ) @ ( coinductive_LCons @ B @ Y4 @ Ys ) )
      = ( ( X3 = Y4 )
        & ( coindu1478340336prefix @ B @ Xs @ Ys ) ) ) ).

% lstrict_prefix_code(4)
thf(fact_126_lstrict__prefix__code_I1_J,axiom,
    ! [A: $tType] :
      ~ ( coindu1478340336prefix @ A @ ( coinductive_LNil @ A ) @ ( coinductive_LNil @ A ) ) ).

% lstrict_prefix_code(1)
thf(fact_127_llist__less__induct,axiom,
    ! [A: $tType,P: ( coinductive_llist @ A ) > $o,Xs: coinductive_llist @ A] :
      ( ! [Xs2: coinductive_llist @ A] :
          ( ! [Ys2: coinductive_llist @ A] :
              ( ( coindu1478340336prefix @ A @ Ys2 @ Xs2 )
             => ( P @ Ys2 ) )
         => ( P @ Xs2 ) )
     => ( P @ Xs ) ) ).

% llist_less_induct
thf(fact_128_smooth__0,axiom,
    ~ ( hammin1195055315smooth @ ( zero_zero @ nat ) ) ).

% smooth_0
thf(fact_129_Coinductive__List_Ofinite__lprefix__nitpick__simps_I1_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] :
      ( ( coindu328551480prefix @ A @ Xs @ ( coinductive_LNil @ A ) )
      = ( Xs
        = ( coinductive_LNil @ A ) ) ) ).

% Coinductive_List.finite_lprefix_nitpick_simps(1)
thf(fact_130_Coinductive__List_Ofinite__lprefix__nitpick__simps_I2_J,axiom,
    ! [A: $tType,Xs: coinductive_llist @ A] : ( coindu328551480prefix @ A @ ( coinductive_LNil @ A ) @ Xs ) ).

% Coinductive_List.finite_lprefix_nitpick_simps(2)
thf(fact_131_le__zero__eq,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type2 @ A ) )
     => ! [N: A] :
          ( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% le_zero_eq
thf(fact_132_le0,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% le0
thf(fact_133_le__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% le_numeral_extra(3)
thf(fact_134_zero__reorient,axiom,
    ! [A: $tType] :
      ( ( zero @ A @ ( type2 @ A ) )
     => ! [X3: A] :
          ( ( ( zero_zero @ A )
            = X3 )
          = ( X3
            = ( zero_zero @ A ) ) ) ) ).

% zero_reorient
thf(fact_135_le__0__eq,axiom,
    ! [N: nat] :
      ( ( ord_less_eq @ nat @ N @ ( zero_zero @ nat ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% le_0_eq
thf(fact_136_less__eq__nat_Osimps_I1_J,axiom,
    ! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).

% less_eq_nat.simps(1)
thf(fact_137_zero__le,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type2 @ A ) )
     => ! [X3: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ X3 ) ) ).

% zero_le
thf(fact_138_llistsum__LNil,axiom,
    ! [A: $tType] :
      ( ( monoid_add @ A @ ( type2 @ A ) )
     => ( ( coindu780009021istsum @ A @ ( coinductive_LNil @ A ) )
        = ( zero_zero @ A ) ) ) ).

% llistsum_LNil
thf(fact_139_fun__cong__unused__0,axiom,
    ! [A: $tType,B: $tType,C2: $tType] :
      ( ( zero @ B @ ( type2 @ B ) )
     => ! [F: ( A > B ) > C2,G: C2] :
          ( ( F
            = ( ^ [X2: A > B] : G ) )
         => ( ( F
              @ ^ [X2: A] : ( zero_zero @ B ) )
            = G ) ) ) ).

% fun_cong_unused_0
thf(fact_140_lsublist__LCons,axiom,
    ! [A: $tType,A4: set @ nat,X3: A,Xs: coinductive_llist @ A] :
      ( ( ( member @ nat @ ( zero_zero @ nat ) @ A4 )
       => ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) @ A4 )
          = ( coinductive_LCons @ A @ X3
            @ ( coinductive_lsublist @ A @ Xs
              @ ( collect @ nat
                @ ^ [N2: nat] : ( member @ nat @ ( suc @ N2 ) @ A4 ) ) ) ) ) )
      & ( ~ ( member @ nat @ ( zero_zero @ nat ) @ A4 )
       => ( ( coinductive_lsublist @ A @ ( coinductive_LCons @ A @ X3 @ Xs ) @ A4 )
          = ( coinductive_lsublist @ A @ Xs
            @ ( collect @ nat
              @ ^ [N2: nat] : ( member @ nat @ ( suc @ N2 ) @ A4 ) ) ) ) ) ) ).

% lsublist_LCons
thf(fact_141_smooth__ge__Suc0,axiom,
    ! [N: nat] :
      ( ( hammin1195055315smooth @ N )
     => ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N ) ) ).

% smooth_ge_Suc0
thf(fact_142_nat_Odistinct_I1_J,axiom,
    ! [X23: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ X23 ) ) ).

% nat.distinct(1)
thf(fact_143_old_Onat_Odistinct_I2_J,axiom,
    ! [Nat: nat] :
      ( ( suc @ Nat )
     != ( zero_zero @ nat ) ) ).

% old.nat.distinct(2)
thf(fact_144_old_Onat_Odistinct_I1_J,axiom,
    ! [Nat2: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ Nat2 ) ) ).

% old.nat.distinct(1)
thf(fact_145_nat_OdiscI,axiom,
    ! [Nat3: nat,X23: nat] :
      ( ( Nat3
        = ( suc @ X23 ) )
     => ( Nat3
       != ( zero_zero @ nat ) ) ) ).

% nat.discI
thf(fact_146_nat__induct,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N3: nat] :
            ( ( P @ N3 )
           => ( P @ ( suc @ N3 ) ) )
       => ( P @ N ) ) ) ).

% nat_induct
thf(fact_147_diff__induct,axiom,
    ! [P: nat > nat > $o,M: nat,N: nat] :
      ( ! [X: nat] : ( P @ X @ ( zero_zero @ nat ) )
     => ( ! [Y2: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y2 ) )
       => ( ! [X: nat,Y2: nat] :
              ( ( P @ X @ Y2 )
             => ( P @ ( suc @ X ) @ ( suc @ Y2 ) ) )
         => ( P @ M @ N ) ) ) ) ).

% diff_induct
thf(fact_148_zero__induct,axiom,
    ! [P: nat > $o,K: nat] :
      ( ( P @ K )
     => ( ! [N3: nat] :
            ( ( P @ ( suc @ N3 ) )
           => ( P @ N3 ) )
       => ( P @ ( zero_zero @ nat ) ) ) ) ).

% zero_induct
thf(fact_149_Suc__neq__Zero,axiom,
    ! [M: nat] :
      ( ( suc @ M )
     != ( zero_zero @ nat ) ) ).

% Suc_neq_Zero
thf(fact_150_Zero__neq__Suc,axiom,
    ! [M: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ M ) ) ).

% Zero_neq_Suc
thf(fact_151_Zero__not__Suc,axiom,
    ! [M: nat] :
      ( ( zero_zero @ nat )
     != ( suc @ M ) ) ).

% Zero_not_Suc
thf(fact_152_old_Onat_Oexhaust,axiom,
    ! [Y4: nat] :
      ( ( Y4
       != ( zero_zero @ nat ) )
     => ~ ! [Nat4: nat] :
            ( Y4
           != ( suc @ Nat4 ) ) ) ).

% old.nat.exhaust
thf(fact_153_old_Onat_Oinducts,axiom,
    ! [P: nat > $o,Nat3: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [Nat4: nat] :
            ( ( P @ Nat4 )
           => ( P @ ( suc @ Nat4 ) ) )
       => ( P @ Nat3 ) ) ) ).

% old.nat.inducts
thf(fact_154_not0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ? [M2: nat] :
          ( N
          = ( suc @ M2 ) ) ) ).

% not0_implies_Suc
thf(fact_155_lift__Suc__antimono__le,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [F: nat > A,N: nat,N4: nat] :
          ( ! [N3: nat] : ( ord_less_eq @ A @ ( F @ ( suc @ N3 ) ) @ ( F @ N3 ) )
         => ( ( ord_less_eq @ nat @ N @ N4 )
           => ( ord_less_eq @ A @ ( F @ N4 ) @ ( F @ N ) ) ) ) ) ).

% lift_Suc_antimono_le
thf(fact_156_lift__Suc__mono__le,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [F: nat > A,N: nat,N4: nat] :
          ( ! [N3: nat] : ( ord_less_eq @ A @ ( F @ N3 ) @ ( F @ ( suc @ N3 ) ) )
         => ( ( ord_less_eq @ nat @ N @ N4 )
           => ( ord_less_eq @ A @ ( F @ N ) @ ( F @ N4 ) ) ) ) ) ).

% lift_Suc_mono_le
thf(fact_157_smooth__Suc0,axiom,
    hammin1195055315smooth @ ( suc @ ( zero_zero @ nat ) ) ).

% smooth_Suc0
thf(fact_158_list__decode_Ocases,axiom,
    ! [X3: nat] :
      ( ( X3
       != ( zero_zero @ nat ) )
     => ~ ! [N3: nat] :
            ( X3
           != ( suc @ N3 ) ) ) ).

% list_decode.cases
thf(fact_159_dependent__nat__choice,axiom,
    ! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
      ( ? [X1: A] : ( P @ ( zero_zero @ nat ) @ X1 )
     => ( ! [X: A,N3: nat] :
            ( ( P @ N3 @ X )
           => ? [Y5: A] :
                ( ( P @ ( suc @ N3 ) @ Y5 )
                & ( Q @ N3 @ X @ Y5 ) ) )
       => ? [F3: nat > A] :
          ! [N5: nat] :
            ( ( P @ N5 @ ( F3 @ N5 ) )
            & ( Q @ N5 @ ( F3 @ N5 ) @ ( F3 @ ( suc @ N5 ) ) ) ) ) ) ).

% dependent_nat_choice
thf(fact_160_exists__least__lemma,axiom,
    ! [P: nat > $o] :
      ( ~ ( P @ ( zero_zero @ nat ) )
     => ( ? [X1: nat] : ( P @ X1 )
       => ? [N3: nat] :
            ( ~ ( P @ N3 )
            & ( P @ ( suc @ N3 ) ) ) ) ) ).

% exists_least_lemma
thf(fact_161_one__le__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ ( times_times @ nat @ M @ N ) )
      = ( ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ M )
        & ( ord_less_eq @ nat @ ( suc @ ( zero_zero @ nat ) ) @ N ) ) ) ).

% one_le_mult_iff
thf(fact_162_mult__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ K )
        = ( times_times @ nat @ N @ K ) )
      = ( ( M = N )
        | ( K
          = ( zero_zero @ nat ) ) ) ) ).

% mult_cancel2
thf(fact_163_mult__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ K @ M )
        = ( times_times @ nat @ K @ N ) )
      = ( ( M = N )
        | ( K
          = ( zero_zero @ nat ) ) ) ) ).

% mult_cancel1
thf(fact_164_mult__0__right,axiom,
    ! [M: nat] :
      ( ( times_times @ nat @ M @ ( zero_zero @ nat ) )
      = ( zero_zero @ nat ) ) ).

% mult_0_right
thf(fact_165_mult__is__0,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ N )
        = ( zero_zero @ nat ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        | ( N
          = ( zero_zero @ nat ) ) ) ) ).

% mult_is_0
thf(fact_166_smooth__times,axiom,
    ! [X3: nat,Y4: nat] :
      ( ( hammin1195055315smooth @ ( times_times @ nat @ X3 @ Y4 ) )
      = ( ( hammin1195055315smooth @ X3 )
        & ( hammin1195055315smooth @ Y4 ) ) ) ).

% smooth_times
thf(fact_167_one__eq__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( suc @ ( zero_zero @ nat ) )
        = ( times_times @ nat @ M @ N ) )
      = ( ( M
          = ( suc @ ( zero_zero @ nat ) ) )
        & ( N
          = ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% one_eq_mult_iff
thf(fact_168_mult__eq__1__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ( times_times @ nat @ M @ N )
        = ( suc @ ( zero_zero @ nat ) ) )
      = ( ( M
          = ( suc @ ( zero_zero @ nat ) ) )
        & ( N
          = ( suc @ ( zero_zero @ nat ) ) ) ) ) ).

% mult_eq_1_iff
thf(fact_169_mult__0,axiom,
    ! [N: nat] :
      ( ( times_times @ nat @ ( zero_zero @ nat ) @ N )
      = ( zero_zero @ nat ) ) ).

% mult_0
thf(fact_170_mult__cancel__right,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
     => ! [A2: A,C: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ C )
            = ( times_times @ A @ B2 @ C ) )
          = ( ( C
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% mult_cancel_right
thf(fact_171_mult__cancel__left,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
     => ! [C: A,A2: A,B2: A] :
          ( ( ( times_times @ A @ C @ A2 )
            = ( times_times @ A @ C @ B2 ) )
          = ( ( C
              = ( zero_zero @ A ) )
            | ( A2 = B2 ) ) ) ) ).

% mult_cancel_left
thf(fact_172_mult__eq__0__iff,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
          = ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% mult_eq_0_iff
thf(fact_173_mult__zero__left,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% mult_zero_left
thf(fact_174_mult__zero__right,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% mult_zero_right
thf(fact_175_mult__not__zero,axiom,
    ! [A: $tType] :
      ( ( mult_zero @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
           != ( zero_zero @ A ) )
         => ( ( A2
             != ( zero_zero @ A ) )
            & ( B2
             != ( zero_zero @ A ) ) ) ) ) ).

% mult_not_zero
thf(fact_176_divisors__zero,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( times_times @ A @ A2 @ B2 )
            = ( zero_zero @ A ) )
         => ( ( A2
              = ( zero_zero @ A ) )
            | ( B2
              = ( zero_zero @ A ) ) ) ) ) ).

% divisors_zero
thf(fact_177_no__zero__divisors,axiom,
    ! [A: $tType] :
      ( ( semiri1193490041visors @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( A2
           != ( zero_zero @ A ) )
         => ( ( B2
             != ( zero_zero @ A ) )
           => ( ( times_times @ A @ A2 @ B2 )
             != ( zero_zero @ A ) ) ) ) ) ).

% no_zero_divisors
thf(fact_178_mult__left__cancel,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ C @ A2 )
              = ( times_times @ A @ C @ B2 ) )
            = ( A2 = B2 ) ) ) ) ).

% mult_left_cancel
thf(fact_179_mult__right__cancel,axiom,
    ! [A: $tType] :
      ( ( semiri1923998003cancel @ A @ ( type2 @ A ) )
     => ! [C: A,A2: A,B2: A] :
          ( ( C
           != ( zero_zero @ A ) )
         => ( ( ( times_times @ A @ A2 @ C )
              = ( times_times @ A @ B2 @ C ) )
            = ( A2 = B2 ) ) ) ) ).

% mult_right_cancel
thf(fact_180_mult__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A,D: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ C @ D )
           => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
             => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
               => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ) ) ).

% mult_mono
thf(fact_181_mult__mono_H,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A,D: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ C @ D )
           => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
             => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
               => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ D ) ) ) ) ) ) ) ).

% mult_mono'
thf(fact_182_zero__le__square,axiom,
    ! [A: $tType] :
      ( ( linordered_ring @ A @ ( type2 @ A ) )
     => ! [A2: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ A2 ) ) ) ).

% zero_le_square
thf(fact_183_split__mult__pos__le,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) )
         => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ).

% split_mult_pos_le
thf(fact_184_mult__left__mono__neg,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_left_mono_neg
thf(fact_185_mult__nonpos__nonpos,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_nonpos_nonpos
thf(fact_186_mult__left__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_left_mono
thf(fact_187_mult__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( ordered_ring @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less_eq @ A @ B2 @ A2 )
         => ( ( ord_less_eq @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_right_mono_neg
thf(fact_188_mult__right__mono,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_right_mono
thf(fact_189_mult__le__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% mult_le_0_iff
thf(fact_190_split__mult__neg__le,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) )
         => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ).

% split_mult_neg_le
thf(fact_191_mult__nonneg__nonneg,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_nonneg_nonneg
thf(fact_192_mult__nonneg__nonpos,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_nonneg_nonpos
thf(fact_193_mult__nonpos__nonneg,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less_eq @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_nonpos_nonneg
thf(fact_194_mult__nonneg__nonpos2,axiom,
    ! [A: $tType] :
      ( ( ordered_semiring_0 @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less_eq @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_nonneg_nonpos2
thf(fact_195_zero__le__mult__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
          = ( ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less_eq @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_le_mult_iff
thf(fact_196_ordered__comm__semiring__class_Ocomm__mult__left__mono,axiom,
    ! [A: $tType] :
      ( ( ordere1490568538miring @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less_eq @ A @ A2 @ B2 )
         => ( ( ord_less_eq @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less_eq @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% ordered_comm_semiring_class.comm_mult_left_mono
thf(fact_197_nat__mult__eq__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ( times_times @ nat @ K @ M )
        = ( times_times @ nat @ K @ N ) )
      = ( ( K
          = ( zero_zero @ nat ) )
        | ( M = N ) ) ) ).

% nat_mult_eq_cancel_disj
thf(fact_198_semiring__normalization__rules_I10_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ A2 @ ( zero_zero @ A ) )
          = ( zero_zero @ A ) ) ) ).

% semiring_normalization_rules(10)
thf(fact_199_semiring__normalization__rules_I9_J,axiom,
    ! [A: $tType] :
      ( ( comm_semiring_1 @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ( ( times_times @ A @ ( zero_zero @ A ) @ A2 )
          = ( zero_zero @ A ) ) ) ).

% semiring_normalization_rules(9)
thf(fact_200_Greatest__equality,axiom,
    ! [A: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [P: A > $o,K: A] :
          ( ( P @ K )
         => ( ! [X: A] :
                ( ( P @ X )
               => ( ord_less_eq @ A @ X @ K ) )
           => ( ( hilbert_Greatest @ A @ P )
              = K ) ) ) ) ).

% Greatest_equality
thf(fact_201_LeastM__equality,axiom,
    ! [A: $tType,B: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [P: B > $o,K: B,M: B > A] :
          ( ( P @ K )
         => ( ! [X: B] :
                ( ( P @ X )
               => ( ord_less_eq @ A @ ( M @ K ) @ ( M @ X ) ) )
           => ( ( M @ ( hilbert_LeastM @ B @ A @ M @ P ) )
              = ( M @ K ) ) ) ) ) ).

% LeastM_equality
thf(fact_202_LeastMI2,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [P: A > $o,X3: A,M: A > B,Q: A > $o] :
          ( ( P @ X3 )
         => ( ! [Y2: A] :
                ( ( P @ Y2 )
               => ( ord_less_eq @ B @ ( M @ X3 ) @ ( M @ Y2 ) ) )
           => ( ! [X: A] :
                  ( ( P @ X )
                 => ( ! [Y5: A] :
                        ( ( P @ Y5 )
                       => ( ord_less_eq @ B @ ( M @ X ) @ ( M @ Y5 ) ) )
                   => ( Q @ X ) ) )
             => ( Q @ ( hilbert_LeastM @ A @ B @ M @ P ) ) ) ) ) ) ).

% LeastMI2
thf(fact_203_Greatest__def,axiom,
    ! [A: $tType] :
      ( ( ord @ A @ ( type2 @ A ) )
     => ( ( hilbert_Greatest @ A )
        = ( hilbert_GreatestM @ A @ A
          @ ^ [X2: A] : X2 ) ) ) ).

% Greatest_def
thf(fact_204_mult__commute__abs,axiom,
    ! [A: $tType] :
      ( ( ab_semigroup_mult @ A @ ( type2 @ A ) )
     => ! [C: A] :
          ( ( ^ [X2: A] : ( times_times @ A @ X2 @ C ) )
          = ( times_times @ A @ C ) ) ) ).

% mult_commute_abs
thf(fact_205_GreatestMI2,axiom,
    ! [B: $tType,A: $tType] :
      ( ( ord @ B @ ( type2 @ B ) )
     => ! [P: A > $o,X3: A,M: A > B,Q: A > $o] :
          ( ( P @ X3 )
         => ( ! [Y2: A] :
                ( ( P @ Y2 )
               => ( ord_less_eq @ B @ ( M @ Y2 ) @ ( M @ X3 ) ) )
           => ( ! [X: A] :
                  ( ( P @ X )
                 => ( ! [Y5: A] :
                        ( ( P @ Y5 )
                       => ( ord_less_eq @ B @ ( M @ Y5 ) @ ( M @ X ) ) )
                   => ( Q @ X ) ) )
             => ( Q @ ( hilbert_GreatestM @ A @ B @ M @ P ) ) ) ) ) ) ).

% GreatestMI2
thf(fact_206_GreatestM__equality,axiom,
    ! [A: $tType,B: $tType] :
      ( ( order @ A @ ( type2 @ A ) )
     => ! [P: B > $o,K: B,M: B > A] :
          ( ( P @ K )
         => ( ! [X: B] :
                ( ( P @ X )
               => ( ord_less_eq @ A @ ( M @ X ) @ ( M @ K ) ) )
           => ( ( M @ ( hilbert_GreatestM @ B @ A @ M @ P ) )
              = ( M @ K ) ) ) ) ) ).

% GreatestM_equality
thf(fact_207_nat__mult__le__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less_eq @ nat @ M @ N ) ) ) ).

% nat_mult_le_cancel_disj
thf(fact_208_mult__le__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less_eq @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less_eq @ nat @ M @ N ) ) ) ).

% mult_le_cancel2
thf(fact_209_not__gr__zero,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type2 @ A ) )
     => ! [N: A] :
          ( ( ~ ( ord_less @ A @ ( zero_zero @ A ) @ N ) )
          = ( N
            = ( zero_zero @ A ) ) ) ) ).

% not_gr_zero
thf(fact_210_neq0__conv,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
      = ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% neq0_conv
thf(fact_211_less__Suc0,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ N @ ( suc @ ( zero_zero @ nat ) ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% less_Suc0
thf(fact_212_zero__less__Suc,axiom,
    ! [N: nat] : ( ord_less @ nat @ ( zero_zero @ nat ) @ ( suc @ N ) ) ).

% zero_less_Suc
thf(fact_213_mult__less__cancel2,axiom,
    ! [M: nat,K: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ M @ K ) @ ( times_times @ nat @ N @ K ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
        & ( ord_less @ nat @ M @ N ) ) ) ).

% mult_less_cancel2
thf(fact_214_nat__0__less__mult__iff,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( times_times @ nat @ M @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ M )
        & ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ) ).

% nat_0_less_mult_iff
thf(fact_215_nat__mult__less__cancel__disj,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
      = ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
        & ( ord_less @ nat @ M @ N ) ) ) ).

% nat_mult_less_cancel_disj
thf(fact_216_smooth__gt0,axiom,
    ! [N: nat] :
      ( ( hammin1195055315smooth @ N )
     => ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% smooth_gt0
thf(fact_217_nat__mult__less__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ord_less @ nat @ ( times_times @ nat @ K @ M ) @ ( times_times @ nat @ K @ N ) )
        = ( ord_less @ nat @ M @ N ) ) ) ).

% nat_mult_less_cancel1
thf(fact_218_nat__mult__eq__cancel1,axiom,
    ! [K: nat,M: nat,N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
     => ( ( ( times_times @ nat @ K @ M )
          = ( times_times @ nat @ K @ N ) )
        = ( M = N ) ) ) ).

% nat_mult_eq_cancel1
thf(fact_219_mult__neg__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_neg_neg
thf(fact_220_not__square__less__zero,axiom,
    ! [A: $tType] :
      ( ( linordered_ring @ A @ ( type2 @ A ) )
     => ! [A2: A] :
          ~ ( ord_less @ A @ ( times_times @ A @ A2 @ A2 ) @ ( zero_zero @ A ) ) ) ).

% not_square_less_zero
thf(fact_221_mult__less__0__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ) ).

% mult_less_0_iff
thf(fact_222_mult__neg__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_neg_pos
thf(fact_223_mult__pos__neg,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ B2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_pos_neg
thf(fact_224_mult__pos__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ B2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) ) ) ) ) ).

% mult_pos_pos
thf(fact_225_mult__pos__neg2,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
         => ( ( ord_less @ A @ B2 @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ B2 @ A2 ) @ ( zero_zero @ A ) ) ) ) ) ).

% mult_pos_neg2
thf(fact_226_zero__less__mult__iff,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
              & ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) )
            | ( ( ord_less @ A @ A2 @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ ( zero_zero @ A ) ) ) ) ) ) ).

% zero_less_mult_iff
thf(fact_227_zero__less__mult__pos,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ A2 @ B2 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).

% zero_less_mult_pos
thf(fact_228_zero__less__mult__pos2,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ ( times_times @ A @ B2 @ A2 ) )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ A2 )
           => ( ord_less @ A @ ( zero_zero @ A ) @ B2 ) ) ) ) ).

% zero_less_mult_pos2
thf(fact_229_mult__less__cancel__left__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
         => ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
            = ( ord_less @ A @ B2 @ A2 ) ) ) ) ).

% mult_less_cancel_left_neg
thf(fact_230_mult__less__cancel__left__pos,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
         => ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
            = ( ord_less @ A @ A2 @ B2 ) ) ) ) ).

% mult_less_cancel_left_pos
thf(fact_231_mult__strict__left__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_strict_left_mono_neg
thf(fact_232_mult__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% mult_strict_left_mono
thf(fact_233_mult__less__cancel__left__disj,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [C: A,A2: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
              & ( ord_less @ A @ A2 @ B2 ) )
            | ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% mult_less_cancel_left_disj
thf(fact_234_mult__strict__right__mono__neg,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [B2: A,A2: A,C: A] :
          ( ( ord_less @ A @ B2 @ A2 )
         => ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_strict_right_mono_neg
thf(fact_235_mult__strict__right__mono,axiom,
    ! [A: $tType] :
      ( ( linord20386208strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) ) ) ) ) ).

% mult_strict_right_mono
thf(fact_236_mult__less__cancel__right__disj,axiom,
    ! [A: $tType] :
      ( ( linord581940658strict @ A @ ( type2 @ A ) )
     => ! [A2: A,C: A,B2: A] :
          ( ( ord_less @ A @ ( times_times @ A @ A2 @ C ) @ ( times_times @ A @ B2 @ C ) )
          = ( ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
              & ( ord_less @ A @ A2 @ B2 ) )
            | ( ( ord_less @ A @ C @ ( zero_zero @ A ) )
              & ( ord_less @ A @ B2 @ A2 ) ) ) ) ) ).

% mult_less_cancel_right_disj
thf(fact_237_linordered__comm__semiring__strict__class_Ocomm__mult__strict__left__mono,axiom,
    ! [A: $tType] :
      ( ( linord893533164strict @ A @ ( type2 @ A ) )
     => ! [A2: A,B2: A,C: A] :
          ( ( ord_less @ A @ A2 @ B2 )
         => ( ( ord_less @ A @ ( zero_zero @ A ) @ C )
           => ( ord_less @ A @ ( times_times @ A @ C @ A2 ) @ ( times_times @ A @ C @ B2 ) ) ) ) ) ).

% linordered_comm_semiring_strict_class.comm_mult_strict_left_mono
thf(fact_238_less__Suc__eq__0__disj,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ ( suc @ N ) )
      = ( ( M
          = ( zero_zero @ nat ) )
        | ? [J: nat] :
            ( ( M
              = ( suc @ J ) )
            & ( ord_less @ nat @ J @ N ) ) ) ) ).

% less_Suc_eq_0_disj
thf(fact_239_gr0__implies__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
     => ? [M2: nat] :
          ( N
          = ( suc @ M2 ) ) ) ).

% gr0_implies_Suc
thf(fact_240_gr0__conv__Suc,axiom,
    ! [N: nat] :
      ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N )
      = ( ? [M3: nat] :
            ( N
            = ( suc @ M3 ) ) ) ) ).

% gr0_conv_Suc
thf(fact_241_ex__least__nat__le,axiom,
    ! [P: nat > $o,N: nat] :
      ( ~ ( P @ ( zero_zero @ nat ) )
     => ( ( P @ N )
       => ? [K2: nat] :
            ( ( ord_less_eq @ nat @ K2 @ N )
            & ! [I2: nat] :
                ( ( ord_less @ nat @ I2 @ K2 )
               => ~ ( P @ I2 ) )
            & ( P @ K2 ) ) ) ) ).

% ex_least_nat_le
thf(fact_242_mult__less__mono2,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less @ nat @ I3 @ J2 )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ nat @ ( times_times @ nat @ K @ I3 ) @ ( times_times @ nat @ K @ J2 ) ) ) ) ).

% mult_less_mono2
thf(fact_243_mult__less__mono1,axiom,
    ! [I3: nat,J2: nat,K: nat] :
      ( ( ord_less @ nat @ I3 @ J2 )
     => ( ( ord_less @ nat @ ( zero_zero @ nat ) @ K )
       => ( ord_less @ nat @ ( times_times @ nat @ I3 @ K ) @ ( times_times @ nat @ J2 @ K ) ) ) ) ).

% mult_less_mono1
thf(fact_244_less__numeral__extra_I3_J,axiom,
    ! [A: $tType] :
      ( ( linordered_semidom @ A @ ( type2 @ A ) )
     => ~ ( ord_less @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).

% less_numeral_extra(3)
thf(fact_245_gr0I,axiom,
    ! [N: nat] :
      ( ( N
       != ( zero_zero @ nat ) )
     => ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) ) ).

% gr0I
thf(fact_246_not__gr0,axiom,
    ! [N: nat] :
      ( ( ~ ( ord_less @ nat @ ( zero_zero @ nat ) @ N ) )
      = ( N
        = ( zero_zero @ nat ) ) ) ).

% not_gr0
thf(fact_247_not__less0,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% not_less0
thf(fact_248_less__zeroE,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_zeroE
thf(fact_249_gr__implies__not0,axiom,
    ! [M: nat,N: nat] :
      ( ( ord_less @ nat @ M @ N )
     => ( N
       != ( zero_zero @ nat ) ) ) ).

% gr_implies_not0
thf(fact_250_infinite__descent0,axiom,
    ! [P: nat > $o,N: nat] :
      ( ( P @ ( zero_zero @ nat ) )
     => ( ! [N3: nat] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ N3 )
           => ( ~ ( P @ N3 )
             => ? [M4: nat] :
                  ( ( ord_less @ nat @ M4 @ N3 )
                  & ~ ( P @ M4 ) ) ) )
       => ( P @ N ) ) ) ).

% infinite_descent0
thf(fact_251_less__nat__zero__code,axiom,
    ! [N: nat] :
      ~ ( ord_less @ nat @ N @ ( zero_zero @ nat ) ) ).

% less_nat_zero_code
thf(fact_252_infinite__descent0__measure,axiom,
    ! [A: $tType,V: A > nat,P: A > $o,X3: A] :
      ( ! [X: A] :
          ( ( ( V @ X )
            = ( zero_zero @ nat ) )
         => ( P @ X ) )
     => ( ! [X: A] :
            ( ( ord_less @ nat @ ( zero_zero @ nat ) @ ( V @ X ) )
           => ( ~ ( P @ X )
             => ? [Y5: A] :
                  ( ( ord_less @ nat @ ( V @ Y5 ) @ ( V @ X ) )
                  & ~ ( P @ Y5 ) ) ) )
       => ( P @ X3 ) ) ) ).

% infinite_descent0_measure
thf(fact_253_gr__zeroI,axiom,
    ! [A: $tType] :
      ( ( canoni770627133id_add @ A @ ( type2 @ A ) )
     => ! [N: A] :
          ( ( N
           != ( zero_zero @ A ) )
         => ( ord_less @ A @ ( zero_zero @ A ) @ N ) ) ) ).

% gr_zeroI

%----Type constructors (31)
thf(tcon_fun___Complete__Lattices_Ocomplete__lattice,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( comple187826305attice @ A8 @ ( type2 @ A8 ) )
     => ( comple187826305attice @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Opreorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( preorder @ A8 @ ( type2 @ A8 ) )
     => ( preorder @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oorder,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( order @ A8 @ ( type2 @ A8 ) )
     => ( order @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_fun___Orderings_Oord,axiom,
    ! [A7: $tType,A8: $tType] :
      ( ( ord @ A8 @ ( type2 @ A8 ) )
     => ( ord @ ( A7 > A8 ) @ ( type2 @ ( A7 > A8 ) ) ) ) ).

thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors__cancel,axiom,
    semiri1923998003cancel @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__comm__semiring__strict,axiom,
    linord893533164strict @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
    canoni770627133id_add @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semiring__strict,axiom,
    linord20386208strict @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Osemiring__no__zero__divisors,axiom,
    semiri1193490041visors @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Oordered__comm__semiring,axiom,
    ordere1490568538miring @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Oordered__semiring__0,axiom,
    ordered_semiring_0 @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Olinordered__semidom,axiom,
    linordered_semidom @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Oab__semigroup__mult,axiom,
    ab_semigroup_mult @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Oordered__semiring,axiom,
    ordered_semiring @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Ocomm__semiring__1,axiom,
    comm_semiring_1 @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Opreorder_1,axiom,
    preorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Olinorder,axiom,
    linorder @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Omonoid__add,axiom,
    monoid_add @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Rings_Omult__zero,axiom,
    mult_zero @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oorder_2,axiom,
    order @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Orderings_Oord_3,axiom,
    ord @ nat @ ( type2 @ nat ) ).

thf(tcon_Nat_Onat___Groups_Ozero,axiom,
    zero @ nat @ ( type2 @ nat ) ).

thf(tcon_Set_Oset___Complete__Lattices_Ocomplete__lattice_4,axiom,
    ! [A7: $tType] : ( comple187826305attice @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Opreorder_5,axiom,
    ! [A7: $tType] : ( preorder @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oorder_6,axiom,
    ! [A7: $tType] : ( order @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_Set_Oset___Orderings_Oord_7,axiom,
    ! [A7: $tType] : ( ord @ ( set @ A7 ) @ ( type2 @ ( set @ A7 ) ) ) ).

thf(tcon_HOL_Obool___Complete__Lattices_Ocomplete__lattice_8,axiom,
    comple187826305attice @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Opreorder_9,axiom,
    preorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Olinorder_10,axiom,
    linorder @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oorder_11,axiom,
    order @ $o @ ( type2 @ $o ) ).

thf(tcon_HOL_Obool___Orderings_Oord_12,axiom,
    ord @ $o @ ( type2 @ $o ) ).

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X3: A,Y4: A] :
      ( ( if @ A @ $false @ X3 @ Y4 )
      = Y4 ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X3: A,Y4: A] :
      ( ( if @ A @ $true @ X3 @ Y4 )
      = X3 ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ( ( the @ ( coinductive_llist @ nat )
      @ ^ [Xs5: coinductive_llist @ nat] :
          ( ( coindu63249387sorted @ nat @ Xs5 )
          & ( coindu351974385stinct @ nat @ Xs5 )
          & ( ( coinductive_lset @ nat @ Xs5 )
            = ( collect @ nat @ hammin1195055315smooth ) ) ) )
    = hammin2015774020amming ) ).

%------------------------------------------------------------------------------